package h0729;

import java.util.Scanner;
import java.util.regex.Pattern;

/**
  * @description 一种字符串压缩表示的解压
  * @author 不知名帅哥
  * @date 2024/7/29 23:00
  * @version 1.0
*/
public class UnzipString {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s = sc.nextLine();
        String res=getRes(s);
        System.out.println(res);
    }

    private static String getRes(String s) {
        int n = s.length();
        int i=0;

        String error="!error";
        StringBuilder builder=new StringBuilder();
        while (i<n){
            char c=s.charAt(i);

            if (Character.isDigit(c)){
                //获取到连续数字
                int num=0;
                while (i<n&&Character.isDigit(s.charAt(i))){
                    int temp=s.charAt(i)-'0';
                    num+=num*10+temp;
                    i++;
                }
                if (num<3){
                    return error;
                }
                //判断后面一位是否是字母
                if (i<n&&Character.isLowerCase(s.charAt(i))){
                    if (i+1<n&&s.charAt(i+1)==s.charAt(i)) return error; //如果后面输入的是连续的字母也是不合法的。

                    for (int j = 0; j < num; j++) {
                        builder.append(s.charAt(i));
                    }
                }else {
                    return error; //非法情况
                }
            }else if (Character.isLowerCase(c)){
                //TODO 这道题复杂就复杂在不合法的情况太多了，不然就得像题解那样把答案重新压缩一遍看是否跟输入相同，
                // 不相同证明就是不合法。主要是类似  ssssdfd  5ffdfh 3b4b 这种
                int count=0;
                int tmp=i;
                while (tmp<n&&Character.isLetter(s.charAt(tmp))){
                    count++;
                    if (count>2) return error;
                    tmp++;
                }
                builder.append(c);
            }else {
                return error;
            }
            i++;
        }

        return builder.toString();
    }
}
